Many online database search engines today focus on ranking and displaying excerpts of the most relevant search results. This is, in part, because of limits in computer memory and bandwidth for data transfer, and because users may not take the time to browse through all of the search results that match the user's criteria. As a result, many search engines are configured to find relevant search results, and then partition the search results into smaller subsets. The smaller subsets may then be retrieved and displayed upon request. Thus, an online search engine may display search results across several pages.
One exemplary system according to the prior art is shown in FIG. 1. In this system, a user may formulate a search query 101 at a client 102 and then submit the query 101 as a search request to a search engine 103. The search engine 103 may be located at a server 104 to receive and process the user's request. After receiving the user's query 101, the server 104 may then request elements in a database 105 that satisfy the user's query 101. The database 105, however, is typically configured to provide search results as discrete subsets 106 and 107. For example, the search results may be partitioned into several pages with each page containing a fraction of the total search results responsive to a query. The pages are typically sorted based on their lexical relatedness to the query or other predefined search criteria. The server 104 typically retrieves the search results from the database 105 one page at a time. For example, as shown in FIG. 1, after receiving the user's first query 101, the server 104 will retrieve the first page of search results 106 corresponding to search results 1 through 10 from the database 105. The server 104 may then return search results 1 through 10 as page one. For a user to browse to the second page of search results 107, i.e., search results 11 through 20, the user may send a second request to the server 104. In response to the second request, the server 104 may then search for, and retrieve search results 11 through 20 from the database 105. The server 104 may then return search results 11 through 20 to the user as page two.
While some search engines have optimized their ranking algorithms to increase the likelihood of providing the most relevant search results in the first few pages, several drawbacks exist. Despite these ranking algorithms, current search engines may still not provide users with the answer they are looking for. This can be because the user may not have chosen the best search terms, the user may have incorrectly constructed the query, the relevance algorithm may have failed, or the results may be so voluminous that the desired search result is difficult to discern or is inaccessible.
Specifically, some information sought by the user may not be found unless the user has access to the complete set of search results and metadata. For example, a user may not be able to identify the leading authors and keywords for a search topic or subtopic unless there is access to the complete set of authors and keywords. Likewise, a user may not be privy to the history of the topic or the full geographic distribution without access to a complete set of search results.
Further, the ranking methods employed by traditional search engines may limit the user's ability to interact with and narrow the search results. It is often the case that the first search results that will be displayed to a user are those that the ranking algorithm determines to be the most relevant. Each time a user requests an additional page of search results from the query, a new page is sent and the search engine typically does not retain the previous pages of results. Users may not readily obtain a complete picture of search results that may span across multiple pages. As a result, they may not use information that must be derived from the complete set of search results to refine their subsequent searches. If the user has the ability to view and analyze the entire set of search results, that information can be used to interactively refine the search queries.
Users interested in analyzing a complete set of search results must typically browse through all the search results by serially requesting and saving each page for offline analysis. For search results that span numerous pages, requesting and delivering each page in this way is time- and resource-intensive. Each new request may require the creation of a new internet connection and processing of new requests. Each new request may further require generating and resending data needed for drawing the user interface, which consumes considerable bandwidth. For paged search results, an entire new webpage may be generated every time a user requests another page of data, which can require the transfer of several multiples as much data as the search results themselves. This, in turn, takes additional time, and consumes additional computer resources.
Further, some search engines have structural limitations that constrain the throughput of search results. For example, some search engines limit the number of sequential requests that a user may make or limit the number of results that can be retrieved for a set of search terms. Although some search engines have attempted to increase throughput by automatically retrieving more than one page of search results per query, the requests for additional pages are still made in a serial fashion resulting in significant inefficiencies.
Some search engines have enabled users to increase the amount of search results viewable on each page. However, such engines will typically wait until the entire set of search results has been retrieved before sending it to the user's browser. And, despite displaying more results per page, a query that returns a large number of responsive search results may span across numerous pages of search results. As a result, a user may still be forced to laboriously page through long lists of search results, making it inefficient, difficult, and time- and resource-intensive to find the most salient results of the search.
Accordingly, what is needed is a system and method that automates the retrieval of a full set of partitionable search results, a system and method that performs asynchronous retrieval for the search results from the database, and a system and method that additionally allows a user to view a full set of search results and interactively explore the search results in the same interface.